﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Hydra.UrlMon.Enumerations
{
    public enum BindStatus : int
    {
        /// <summary>Notifies the client application that the bind operation is finding the resource that holds the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the resource being searched for (for example, "www.microsoft.com").</summary>
        FINDINGRESOURCE = 1,
        /// <summary>Notifies the client application that the bind operation is connecting to the resource that holds the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the resource being connected to (for example, an IP address).</summary>
        CONNECTING = FINDINGRESOURCE + 1,
        /// <summary>Notifies the client application that the bind operation has been redirected to a different data location. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the new data location.</summary>
        REDIRECTING = CONNECTING + 1,
        /// <summary>Notifies the client application that the bind operation has begun receiving the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the data location.</summary>
        BEGINDOWNLOADDATA = REDIRECTING + 1,
        /// <summary>Notifies the client application that the bind operation continues to receive the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the data location.</summary>
        DOWNLOADINGDATA = BEGINDOWNLOADDATA + 1,
        /// <summary>Notifies the client application that the bind operation has finished receiving the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the data location.</summary>
        ENDDOWNLOADDATA = DOWNLOADINGDATA + 1,
        /// <summary>Notifies the client application that the bind operation is beginning to download the component.</summary>
        BEGINDOWNLOADCOMPONENTS = ENDDOWNLOADDATA + 1,
        /// <summary>Notifies the client application that the bind operation is installing the component.</summary>
        INSTALLINGCOMPONENTS = BEGINDOWNLOADCOMPONENTS + 1,
        /// <summary>Notifies the client application that the bind operation has finished downloading the component.</summary>
        ENDDOWNLOADCOMPONENTS = INSTALLINGCOMPONENTS + 1,
        /// <summary>Notifies the client application that the bind operation is retrieving the requested object or storage from a cached copy. The szStatusText parameter to the IBindStatusCallback::OnProgress method is NULL.</summary>
        USINGCACHEDCOPY = ENDDOWNLOADCOMPONENTS + 1,
        /// <summary>Notifies the client application that the bind operation is requesting the object or storage being bound to. The szStatusText parameter to the IBindStatusCallback::OnProgress method provides the display name of the object (for example, a file name).</summary>
        SENDINGREQUEST = USINGCACHEDCOPY + 1,
        /// <summary>Notifies the client application that the CLSID of the resource is available.</summary>
        CLASSIDAVAILABLE = SENDINGREQUEST + 1,
        /// <summary>Notifies the client application that the MIME type of the resource is available.</summary>
        MIMETYPEAVAILABLE = CLASSIDAVAILABLE + 1,
        /// <summary>Notifies the client application that the temporary or cache file name of the resource is available. The temporary file name might be returned if BINDF_NOWRITECACHE is called. The temporary file will be deleted once the storage is released.</summary>
        CACHEFILENAMEAVAILABLE = MIMETYPEAVAILABLE + 1,
        /// <summary>Notifies the client application that a synchronous operation has started.</summary>
        BEGINSYNCOPERATION = CACHEFILENAMEAVAILABLE + 1,
        /// <summary>Notifies the client application that the synchronous operation has completed.</summary>
        ENDSYNCOPERATION = BEGINSYNCOPERATION + 1,
        /// <summary>Notifies the client application that the file upload has started.</summary>
        BEGINUPLOADDATA = ENDSYNCOPERATION + 1,
        /// <summary>Notifies the client application that the file upload is in progress.</summary>
        UPLOADINGDATA = BEGINUPLOADDATA + 1,
        /// <summary> Notifies the client application that the file upload has completed. </summary>
        ENDUPLOADDATA = UPLOADINGDATA + 1,
        /// <summary>Notifies the client application that the CLSID of the protocol handler being used is available.</summary>
        PROTOCOLCLASSID = ENDUPLOADDATA + 1,
        /// <summary>Notifies the client application that the Urlmon.dll is encoding data.</summary>
        ENCODING = PROTOCOLCLASSID + 1,
        /// <summary> Notifies the client application that the verified MIME type is available. </summary>
        VERIFIEDMIMETYPEAVAILABLE = ENCODING + 1,
        /// <summary>Notifies the client application that the class install location is available.</summary>
        CLASSINSTALLLOCATION = VERIFIEDMIMETYPEAVAILABLE + 1,
        /// <summary>Notifies the client application that the bind operation is decoding data.</summary>
        DECODING = CLASSINSTALLLOCATION + 1,
        /// <summary>Notifies the client application that a pluggable MIME handler is being loaded. This value was added for Microsoft┬о Internet Explorer 5.</summary>
        LOADINGMIMEHANDLER = DECODING + 1,
        /// <summary>Notifies the client application that this resource contained a Content-Disposition header that indicates that this resource is an attachment. The content of this resource should not be automatically displayed. Client applications should request permission from the user. This value was added for Internet Explorer 5.</summary>
        CONTENTDISPOSITIONATTACH = LOADINGMIMEHANDLER + 1,
        /// <summary>Notifies the client application of the new MIME type of the resource. This is used by a pluggable MIME filter to report a change in the MIME type after it has processed the resource. This value was added for Internet Explorer 5.</summary>
        FILTERREPORTMIMETYPE = CONTENTDISPOSITIONATTACH + 1,
        /// <summary>Notifies the Urlmon.dll that this CLSID is for the class the Urlmon.dll should return to the client on a call to IMoniker::BindToObject. This value was added for Internet Explorer 5.</summary>
        CLSIDCANINSTANTIATE = FILTERREPORTMIMETYPE + 1,
        /// <summary>Reports that the IUnknown interface has been released. This value was added for Internet Explorer 5.</summary>
        IUNKNOWNAVAILABLE = CLSIDCANINSTANTIATE + 1,
        /// <summary>Reports whether or not the client application is connected directly to the pluggable protocol handler. This value was added for Internet Explorer 5.</summary>
        DIRECTBIND = IUNKNOWNAVAILABLE + 1,
        /// <summary>Reports the MIME type of the resource, before any code sniffing is done. This value was added for Internet Explorer 5.</summary>
        RAWMIMETYPE = DIRECTBIND + 1,
        /// <summary>Reports that a proxy server has been detected. This value was added for Internet Explorer 5.</summary>
        PROXYDETECTING = RAWMIMETYPE + 1,
        /// <summary>Reports the valid types of range requests for a resource. This value was added for Internet Explorer 5.</summary>
        ACCEPTRANGES = PROXYDETECTING + 1,

        COOKIE_SENT = ACCEPTRANGES + 1,

        COMPACT_POLICY_RECEIVED = COOKIE_SENT + 1,

        COOKIE_SUPPRESSED = COMPACT_POLICY_RECEIVED + 1,

        COOKIE_STATE_UNKNOWN = COOKIE_SUPPRESSED + 1,

        COOKIE_STATE_ACCEPT = COOKIE_STATE_UNKNOWN + 1,

        COOKIE_STATE_REJECT = COOKIE_STATE_ACCEPT + 1,

        COOKIE_STATE_PROMPT = COOKIE_STATE_REJECT + 1,

        COOKIE_STATE_LEASH = COOKIE_STATE_PROMPT + 1,

        COOKIE_STATE_DOWNGRADE = COOKIE_STATE_LEASH + 1,

        POLICY_HREF = COOKIE_STATE_DOWNGRADE + 1,

        P3P_HEADER = POLICY_HREF + 1,

        SESSION_COOKIE_RECEIVED = P3P_HEADER + 1,

        PERSISTENT_COOKIE_RECEIVED = SESSION_COOKIE_RECEIVED + 1,

        SESSION_COOKIES_ALLOWED = PERSISTENT_COOKIE_RECEIVED + 1
    }
}
